package com.spring.demo4.factory.advice;

import org.springframework.aop.AfterAdvice;
import org.springframework.lang.Nullable;

import java.lang.reflect.Method;

/**
 * AfterReturningAdvice: 方法执行后通知，需要在目标方法执行之后执行增强一些逻辑的，可以通过这个实现
 * 目标方法正常执行后，才会回调这个接口，当目标方法有异常，那么这通知会被跳过
 *
 * @author vhans
 */
public interface MyAfterReturningAdvice extends AfterAdvice {
    /**
     * 目标方法执行之后会回调这个方法
     *
     * @param returnValue 返回值
     * @param method      需要执行的目标方法
     * @param args        方法参数
     * @param target      目标对象
     */
    void afterReturning(@Nullable Object returnValue, Method method, Object[] args, @Nullable Object target) throws Throwable;
}
